Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: User config #1704

Closed
wants to merge 63 commits into from

Conversation

cathales
Copy link
Contributor

⚠️ This PR is not ready for merge yet. It builds CVA6 with embedded configuration on Verilator and runs CoreMark but there are still formatting + history cleanup + rebase + fixes to do for VCS and other configurations.

This PR is a step towards CVA6 parametrization.

  1. It distinguishes two types: "user configuration" VS "extended configuration", which is interesting because:
    • It is not needed anymore to insert dummy values into a structure if the configuration file.
    • It appears in the type signature that configuration has been extended or not: when the extended configuration is needed, the appropriate type is used to force that the transmitted parameter is already extended, avoiding the accidental use of dummy values.
  2. It creates a function to gather the extension logic.
  3. It moves user-config-dependent information from packages to this configuration structure as it is not possible for packages to use values from a configuration structure.

Not everything has been moved yet, but as moving XLEN (and its dependents PLEN, VLEN and many more types and values) implied a lot of changes, it is better to commit them as soon as it is working to avoid an even bigger PR (and the associated conflicts).

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

verible-verilog-format

core/cache_subsystem/cache_ctrl.sv|104|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|24|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|68|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|71|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|74|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|118|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|231|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|234|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|259|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|262|
core/cache_subsystem/cva6_hpdcache_subsystem.sv|512|
core/cache_subsystem/cva6_hpdcache_subsystem_axi_arbiter.sv|51|
core/cache_subsystem/cva6_hpdcache_subsystem_axi_arbiter.sv|56|
core/cache_subsystem/cva6_icache.sv|37|
core/cache_subsystem/cva6_icache.sv|82|
core/cache_subsystem/cva6_icache.sv|84|
core/cache_subsystem/cva6_icache.sv|92|
core/cache_subsystem/cva6_icache.sv|106|
core/cache_subsystem/cva6_icache.sv|190|
core/cache_subsystem/cva6_icache_axi_wrapper.sv|25|
core/cache_subsystem/cva6_icache_axi_wrapper.sv|117|
core/cache_subsystem/miss_handler.sv|23|
core/cache_subsystem/miss_handler.sv|28|
core/cache_subsystem/miss_handler.sv|143|
core/cache_subsystem/miss_handler.sv|146|
core/cache_subsystem/miss_handler.sv|148|
core/cache_subsystem/miss_handler.sv|151|
core/cache_subsystem/miss_handler.sv|156|
core/cache_subsystem/miss_handler.sv|160|
core/cache_subsystem/miss_handler.sv|256|
core/cache_subsystem/miss_handler.sv|260|
core/cache_subsystem/miss_handler.sv|317|
core/cache_subsystem/miss_handler.sv|323|
core/cache_subsystem/miss_handler.sv|420|
core/cache_subsystem/std_cache_subsystem.sv|27|
core/cache_subsystem/std_cache_subsystem.sv|79|
core/cache_subsystem/std_cache_subsystem.sv|109|
core/cache_subsystem/std_cache_subsystem.sv|112|
core/cache_subsystem/std_cache_subsystem.sv|187|
core/cache_subsystem/std_nbdcache.sv|33|
core/cache_subsystem/std_nbdcache.sv|68|
core/cache_subsystem/std_nbdcache.sv|74|
core/cache_subsystem/std_nbdcache.sv|98|
core/cache_subsystem/std_nbdcache.sv|154|
core/cache_subsystem/std_nbdcache.sv|267|
core/cache_subsystem/tag_cmp.sv|19|
core/cache_subsystem/tag_cmp.sv|40|
core/cache_subsystem/wt_axi_adapter.sv|279|
core/cache_subsystem/wt_axi_adapter.sv|297|
core/cache_subsystem/wt_axi_adapter.sv|324|
core/cache_subsystem/wt_axi_adapter.sv|342|
core/cache_subsystem/wt_axi_adapter.sv|360|
core/cache_subsystem/wt_axi_adapter.sv|391|
core/cache_subsystem/wt_cache_subsystem.sv|26|
core/cache_subsystem/wt_cache_subsystem.sv|43|
core/cache_subsystem/wt_cache_subsystem.sv|124|
core/cache_subsystem/wt_cache_subsystem.sv|148|
core/cache_subsystem/wt_cache_subsystem.sv|208|
core/cache_subsystem/wt_dcache.sv|71|
core/cache_subsystem/wt_dcache.sv|74|
core/cache_subsystem/wt_dcache.sv|93|
core/cache_subsystem/wt_dcache.sv|107|
core/cache_subsystem/wt_dcache.sv|120|
core/cache_subsystem/wt_dcache.sv|124|
core/cache_subsystem/wt_dcache.sv|132|
core/cache_subsystem/wt_dcache.sv|200|
core/cache_subsystem/wt_dcache.sv|240|
core/cache_subsystem/wt_dcache.sv|246|
core/cache_subsystem/wt_dcache.sv|324|
core/cache_subsystem/wt_dcache_ctrl.sv|24|
core/cache_subsystem/wt_dcache_mem.sv|33|
core/cache_subsystem/wt_dcache_mem.sv|55|
core/cache_subsystem/wt_dcache_mem.sv|59|
core/cache_subsystem/wt_dcache_mem.sv|67|
core/cache_subsystem/wt_dcache_mem.sv|100|
core/cache_subsystem/wt_dcache_mem.sv|124|
core/cache_subsystem/wt_dcache_mem.sv|208|
core/cache_subsystem/wt_dcache_mem.sv|217|
core/cache_subsystem/wt_dcache_mem.sv|230|
core/cache_subsystem/wt_dcache_missunit.sv|95|
core/cache_subsystem/wt_dcache_missunit.sv|122|
core/cache_subsystem/wt_dcache_missunit.sv|128|
core/cache_subsystem/wt_dcache_missunit.sv|251|
core/cache_subsystem/wt_dcache_missunit.sv|304|
core/cache_subsystem/wt_dcache_missunit.sv|307|
core/cache_subsystem/wt_dcache_wbuffer.sv|114|
core/cache_subsystem/wt_dcache_wbuffer.sv|160|
core/cache_subsystem/wt_dcache_wbuffer.sv|179|
core/cache_subsystem/wt_dcache_wbuffer.sv|214|
core/cache_subsystem/wt_dcache_wbuffer.sv|221|
core/cache_subsystem/wt_dcache_wbuffer.sv|233|
core/cache_subsystem/wt_dcache_wbuffer.sv|260|
core/cache_subsystem/wt_dcache_wbuffer.sv|272|
core/cache_subsystem/wt_dcache_wbuffer.sv|298|
core/cache_subsystem/wt_dcache_wbuffer.sv|367|
core/cache_subsystem/wt_dcache_wbuffer.sv|372|
core/cache_subsystem/wt_dcache_wbuffer.sv|383|
core/cache_subsystem/wt_dcache_wbuffer.sv|402|
core/csr_buffer.sv|29|
core/csr_buffer.sv|34|
core/csr_regfile.sv|19|
core/csr_regfile.sv|120|
core/csr_regfile.sv|289|
core/cva6.sv|62|
core/cva6.sv|83|
core/cva6.sv|112|
core/cva6.sv|120|
core/cva6.sv|124|
core/cva6.sv|131|
core/cva6.sv|133|
core/cva6.sv|137|
core/cva6.sv|154|
core/cva6.sv|161|
core/cva6.sv|164|
core/cva6.sv|166|
core/cva6.sv|176|
core/cva6.sv|190|
core/cva6.sv|197|
core/cva6.sv|200|
core/cva6.sv|306|
core/cva6.sv|668|
core/cva6.sv|672|
core/cva6.sv|916|
core/cva6.sv|920|
core/cva6.sv|986|
core/cva6.sv|1207|
core/cva6.sv|1262|
core/cva6.sv|1351|
core/cva6.sv|1432|
core/cva6_accel_first_pass_decoder_stub.sv|11|
core/cva6_accel_first_pass_decoder_stub.sv|13|
core/cvxif_example/cvxif_example_coprocessor.sv|112|
core/cvxif_example/cvxif_example_coprocessor.sv|116|
core/cvxif_fu.sv|30|
core/cvxif_fu.sv|38|
core/decoder.sv|76|
core/decoder.sv|78|
core/decoder.sv|98|
core/decoder.sv|1247|
core/ex_stage.sv|67|
core/ex_stage.sv|117|
core/ex_stage.sv|135|
core/ex_stage.sv|183|
core/ex_stage.sv|222|
core/ex_stage.sv|266|
core/fpu_wrap.sv|35|
core/frontend/bht.sv|26|
core/frontend/bht.sv|124|
core/frontend/btb.sv|41|
core/frontend/frontend.sv|28|
core/frontend/frontend.sv|34|
core/frontend/frontend.sv|39|
core/frontend/frontend.sv|44|
core/frontend/frontend.sv|46|
core/frontend/frontend.sv|78|
core/frontend/frontend.sv|85|
core/frontend/frontend.sv|88|
core/frontend/frontend.sv|92|
core/frontend/frontend.sv|94|
core/frontend/frontend.sv|116|
core/frontend/frontend.sv|118|
core/frontend/frontend.sv|120|
core/frontend/frontend.sv|128|
core/frontend/frontend.sv|130|
core/frontend/frontend.sv|133|
core/frontend/frontend.sv|138|
core/frontend/frontend.sv|438|
core/frontend/instr_queue.sv|79|
core/frontend/instr_queue.sv|89|
core/frontend/instr_queue.sv|95|
core/frontend/instr_queue.sv|137|
core/frontend/instr_queue.sv|295|
core/frontend/instr_queue.sv|358|
core/frontend/instr_queue.sv|388|
core/frontend/instr_scan.sv|28|
core/frontend/instr_scan.sv|53|
core/id_stage.sv|52|
core/id_stage.sv|54|
core/id_stage.sv|58|
core/include/config_pkg.sv|40|
core/include/config_pkg.sv|42|
core/include/config_pkg.sv|47|
core/include/config_pkg.sv|57|
core/include/config_pkg.sv|61|
core/include/config_pkg.sv|270|
core/include/cv32a6_embedded_config_pkg.sv|75|
core/include/riscv_pkg.sv|299|
core/issue_read_operands.sv|92|
core/issue_read_operands.sv|94|
core/issue_read_operands.sv|120|
core/issue_read_operands.sv|229|
core/issue_read_operands.sv|231|
core/issue_read_operands.sv|438|
core/issue_read_operands.sv|441|
core/issue_read_operands.sv|443|
core/issue_read_operands.sv|542|
core/issue_read_operands.sv|554|
core/issue_stage.sv|86|
core/issue_stage.sv|88|
core/issue_stage.sv|97|
core/issue_stage.sv|111|
core/issue_stage.sv|115|
core/issue_stage.sv|126|
core/issue_stage.sv|140|
core/issue_stage.sv|144|
core/issue_stage.sv|186|
core/load_store_unit.sv|29|
core/load_store_unit.sv|93|
core/load_store_unit.sv|97|
core/load_store_unit.sv|104|
core/load_store_unit.sv|119|
core/load_store_unit.sv|129|
core/load_store_unit.sv|135|
core/load_store_unit.sv|139|
core/load_store_unit.sv|143|
core/load_store_unit.sv|150|
core/load_store_unit.sv|163|
core/load_store_unit.sv|198|
core/load_store_unit.sv|236|
core/load_unit.sv|75|
core/load_unit.sv|77|
core/load_unit.sv|193|
core/mmu_sv32/cva6_mmu_sv32.sv|33|
core/mmu_sv32/cva6_mmu_sv32.sv|109|
core/mmu_sv32/cva6_mmu_sv32.sv|111|
core/mmu_sv32/cva6_mmu_sv32.sv|113|
core/mmu_sv32/cva6_mmu_sv32.sv|285|
core/mmu_sv32/cva6_ptw_sv32.sv|59|
core/mmu_sv32/cva6_ptw_sv32.sv|67|
core/mmu_sv32/cva6_shared_tlb_sv32.sv|38|
core/mmu_sv32/cva6_shared_tlb_sv32.sv|42|
core/mmu_sv32/cva6_shared_tlb_sv32.sv|54|
core/mmu_sv39/mmu.sv|22|
core/mmu_sv39/mmu.sv|33|
core/mmu_sv39/mmu.sv|38|
core/mmu_sv39/mmu.sv|116|
core/mmu_sv39/mmu.sv|118|
core/mmu_sv39/mmu.sv|139|
core/mmu_sv39/mmu.sv|141|
core/mmu_sv39/ptw.sv|50|
core/mmu_sv39/ptw.sv|53|
core/mmu_sv39/ptw.sv|57|
core/mmu_sv39/ptw.sv|62|
core/mmu_sv39/tlb.sv|29|
core/mmu_sv39/tlb.sv|31|
core/mmu_sv39/tlb.sv|56|
core/mult.sv|9|
core/mult.sv|73|
core/multiplier.sv|25|
core/multiplier.sv|28|
core/multiplier.sv|33|
core/multiplier.sv|71|
core/perf_counters.sv|19|
core/perf_counters.sv|26|
core/perf_counters.sv|156|
core/scoreboard.sv|35|
core/scoreboard.sv|39|
core/scoreboard.sv|49|
core/scoreboard.sv|54|
core/scoreboard.sv|59|
core/scoreboard.sv|71|
core/store_unit.sv|201|
core/store_unit.sv|203|

@@ -18,8 +18,40 @@ module acc_dispatcher
import riscv::*;
#(
parameter config_pkg::cva6_cfg_t CVA6Cfg = config_pkg::cva6_cfg_empty,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
parameter config_pkg::cva6_cfg_t CVA6Cfg = config_pkg::cva6_cfg_empty,
parameter config_pkg::cva6_cfg_t CVA6Cfg = config_pkg::cva6_cfg_empty,

parameter type acc_req_t = acc_pkg::accelerator_req_t,
parameter type acc_resp_t = acc_pkg::accelerator_resp_t,
parameter type exception_t = logic,
parameter type fu_data_t = logic,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
parameter type fu_data_t = logic,
parameter type fu_data_t = logic,

Comment on lines +27 to +32
logic req_valid;
logic resp_ready;
riscv::instruction_t insn;
logic [CVA6Cfg.XLEN-1:0] rs1;
logic [CVA6Cfg.XLEN-1:0] rs2;
fpnew_pkg::roundmode_e frm;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
logic req_valid;
logic resp_ready;
riscv::instruction_t insn;
logic [CVA6Cfg.XLEN-1:0] rs1;
logic [CVA6Cfg.XLEN-1:0] rs2;
fpnew_pkg::roundmode_e frm;
logic req_valid;
logic resp_ready;
riscv::instruction_t insn;
logic [CVA6Cfg.XLEN-1:0] rs1;
logic [CVA6Cfg.XLEN-1:0] rs2;
fpnew_pkg::roundmode_e frm;

logic [CVA6Cfg.XLEN-1:0] rs2;
fpnew_pkg::roundmode_e frm;
logic [CVA6Cfg.TRANS_ID_BITS-1:0] trans_id;
logic store_pending;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
logic store_pending;
logic store_pending;

Comment on lines +36 to +37
logic acc_cons_en;
logic inval_ready;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
logic acc_cons_en;
logic inval_ready;
logic acc_cons_en;
logic inval_ready;

CLZW, CTZW: result_o = (lz_tz_wempty) ? 32 : {{riscv::XLEN - 5{1'b0}}, lz_tz_wcount}; // change
ROLW: result_o = {{riscv::XLEN - 32{rolw[31]}}, rolw};
RORW, RORIW: result_o = {{riscv::XLEN - 32{rorw[31]}}, rorw};
CLZW, CTZW: result_o = (lz_tz_wempty) ? 32 : {{CVA6Cfg.XLEN - 5{1'b0}}, lz_tz_wcount}; // change
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
CLZW, CTZW: result_o = (lz_tz_wempty) ? 32 : {{CVA6Cfg.XLEN - 5{1'b0}}, lz_tz_wcount}; // change
CLZW, CTZW:
result_o = (lz_tz_wempty) ? 32 : {{CVA6Cfg.XLEN - 5{1'b0}}, lz_tz_wcount}; // change

Comment on lines +305 to +306
result_o = (lz_tz_empty) ? ({{CVA6Cfg.XLEN - $clog2(CVA6Cfg.XLEN) {1'b0}}, lz_tz_count} + 1) :
{{CVA6Cfg.XLEN - $clog2(CVA6Cfg.XLEN) {1'b0}}, lz_tz_count};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
result_o = (lz_tz_empty) ? ({{CVA6Cfg.XLEN - $clog2(CVA6Cfg.XLEN) {1'b0}}, lz_tz_count} + 1) :
{{CVA6Cfg.XLEN - $clog2(CVA6Cfg.XLEN) {1'b0}}, lz_tz_count};
result_o = (lz_tz_empty) ? ({{CVA6Cfg.XLEN - $clog2(CVA6Cfg.XLEN) {1'b0}}, lz_tz_count} + 1)
: {{CVA6Cfg.XLEN - $clog2(CVA6Cfg.XLEN) {1'b0}}, lz_tz_count};

@@ -39,8 +39,8 @@ module amo_buffer #(

typedef struct packed {
ariane_pkg::amo_t op;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
ariane_pkg::amo_t op;
ariane_pkg::amo_t op;

Comment on lines +43 to 44
logic [CVA6Cfg.XLEN-1:0] data;
logic [1:0] size;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
logic [CVA6Cfg.XLEN-1:0] data;
logic [1:0] size;
logic [CVA6Cfg.XLEN-1:0] data;
logic [1:0] size;

Comment on lines 66 to +67
.DEPTH(1),
.dtype(amo_op_t)
.dtype(amo_op_t),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
.DEPTH(1),
.dtype(amo_op_t)
.dtype(amo_op_t),
.DEPTH (1),
.dtype (amo_op_t),

Copy link
Contributor

❌ failed run, report available here.

@cathales cathales marked this pull request as draft December 13, 2023 09:08
@cathales cathales mentioned this pull request Dec 13, 2023
1 task
@cathales
Copy link
Contributor Author

Note after discussion with @AngelaGonzalezMarino:

I will change how I define types before spreading them. I have not embraced a specific style yet and I am not consistent. I’m sometimes defining a type with parameter even if it is not supposed to be taken as a generic, which is confusing. Three options to consider:

  • At least use localparam instead of parameter
  • Move the localparam into the module body (instead of in the #() generic parameters)
  • Use a typedef instead of a localparam type, but then I’m not sure if transmitting it will be correctly supported.

I would opt for option 2: localparam in the module body.

Thanks a lot to @AngelaGonzalezMarino for the review!

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

verible-verilog-format

core/cache_subsystem/miss_handler.sv|260|
core/cache_subsystem/miss_handler.sv|317|
core/cache_subsystem/miss_handler.sv|323|
core/cache_subsystem/miss_handler.sv|420|
core/cache_subsystem/std_cache_subsystem.sv|27|
core/cache_subsystem/std_cache_subsystem.sv|79|
core/cache_subsystem/std_cache_subsystem.sv|109|
core/cache_subsystem/std_cache_subsystem.sv|112|
core/cache_subsystem/std_cache_subsystem.sv|187|
core/cache_subsystem/std_nbdcache.sv|33|
core/cache_subsystem/std_nbdcache.sv|68|
core/cache_subsystem/std_nbdcache.sv|74|
core/cache_subsystem/std_nbdcache.sv|98|
core/cache_subsystem/std_nbdcache.sv|154|
core/cache_subsystem/std_nbdcache.sv|267|
core/cache_subsystem/tag_cmp.sv|19|
core/cache_subsystem/tag_cmp.sv|40|
core/cache_subsystem/wt_axi_adapter.sv|279|
core/cache_subsystem/wt_axi_adapter.sv|297|
core/cache_subsystem/wt_axi_adapter.sv|324|
core/cache_subsystem/wt_axi_adapter.sv|342|
core/cache_subsystem/wt_axi_adapter.sv|360|
core/cache_subsystem/wt_axi_adapter.sv|391|
core/cache_subsystem/wt_cache_subsystem.sv|26|
core/cache_subsystem/wt_cache_subsystem.sv|43|
core/cache_subsystem/wt_cache_subsystem.sv|124|
core/cache_subsystem/wt_cache_subsystem.sv|148|
core/cache_subsystem/wt_cache_subsystem.sv|208|
core/cache_subsystem/wt_dcache.sv|71|
core/cache_subsystem/wt_dcache.sv|74|
core/cache_subsystem/wt_dcache.sv|93|
core/cache_subsystem/wt_dcache.sv|107|
core/cache_subsystem/wt_dcache.sv|120|
core/cache_subsystem/wt_dcache.sv|124|
core/cache_subsystem/wt_dcache.sv|132|
core/cache_subsystem/wt_dcache.sv|200|
core/cache_subsystem/wt_dcache.sv|240|
core/cache_subsystem/wt_dcache.sv|246|
core/cache_subsystem/wt_dcache.sv|324|
core/cache_subsystem/wt_dcache_ctrl.sv|24|
core/cache_subsystem/wt_dcache_mem.sv|33|
core/cache_subsystem/wt_dcache_mem.sv|55|
core/cache_subsystem/wt_dcache_mem.sv|59|
core/cache_subsystem/wt_dcache_mem.sv|67|
core/cache_subsystem/wt_dcache_mem.sv|100|
core/cache_subsystem/wt_dcache_mem.sv|124|
core/cache_subsystem/wt_dcache_mem.sv|208|
core/cache_subsystem/wt_dcache_mem.sv|217|
core/cache_subsystem/wt_dcache_mem.sv|230|
core/cache_subsystem/wt_dcache_missunit.sv|95|
core/cache_subsystem/wt_dcache_missunit.sv|122|
core/cache_subsystem/wt_dcache_missunit.sv|128|
core/cache_subsystem/wt_dcache_missunit.sv|251|
core/cache_subsystem/wt_dcache_missunit.sv|304|
core/cache_subsystem/wt_dcache_missunit.sv|307|
core/cache_subsystem/wt_dcache_wbuffer.sv|114|
core/cache_subsystem/wt_dcache_wbuffer.sv|160|
core/cache_subsystem/wt_dcache_wbuffer.sv|179|
core/cache_subsystem/wt_dcache_wbuffer.sv|214|
core/cache_subsystem/wt_dcache_wbuffer.sv|221|
core/cache_subsystem/wt_dcache_wbuffer.sv|233|
core/cache_subsystem/wt_dcache_wbuffer.sv|260|
core/cache_subsystem/wt_dcache_wbuffer.sv|272|
core/cache_subsystem/wt_dcache_wbuffer.sv|298|
core/cache_subsystem/wt_dcache_wbuffer.sv|367|
core/cache_subsystem/wt_dcache_wbuffer.sv|372|
core/cache_subsystem/wt_dcache_wbuffer.sv|383|
core/cache_subsystem/wt_dcache_wbuffer.sv|402|
core/csr_buffer.sv|29|
core/csr_buffer.sv|34|
core/csr_regfile.sv|19|
core/csr_regfile.sv|120|
core/csr_regfile.sv|289|
core/cva6.sv|62|
core/cva6.sv|83|
core/cva6.sv|112|
core/cva6.sv|120|
core/cva6.sv|124|
core/cva6.sv|131|
core/cva6.sv|133|
core/cva6.sv|137|
core/cva6.sv|154|
core/cva6.sv|161|
core/cva6.sv|164|
core/cva6.sv|166|
core/cva6.sv|176|
core/cva6.sv|190|
core/cva6.sv|197|
core/cva6.sv|200|
core/cva6.sv|306|
core/cva6.sv|668|
core/cva6.sv|672|
core/cva6.sv|916|
core/cva6.sv|920|
core/cva6.sv|986|
core/cva6.sv|1207|
core/cva6.sv|1262|
core/cva6.sv|1351|
core/cva6.sv|1432|
core/cva6_accel_first_pass_decoder_stub.sv|11|
core/cva6_accel_first_pass_decoder_stub.sv|13|
core/cvxif_example/cvxif_example_coprocessor.sv|112|
core/cvxif_example/cvxif_example_coprocessor.sv|116|
core/cvxif_fu.sv|30|
core/cvxif_fu.sv|38|
core/decoder.sv|76|
core/decoder.sv|78|
core/decoder.sv|98|
core/decoder.sv|1247|
core/ex_stage.sv|67|
core/ex_stage.sv|117|
core/ex_stage.sv|135|
core/ex_stage.sv|183|
core/ex_stage.sv|222|
core/ex_stage.sv|266|
core/fpu_wrap.sv|35|
core/frontend/bht.sv|26|
core/frontend/bht.sv|124|
core/frontend/btb.sv|41|
core/frontend/frontend.sv|28|
core/frontend/frontend.sv|34|
core/frontend/frontend.sv|39|
core/frontend/frontend.sv|44|
core/frontend/frontend.sv|46|
core/frontend/frontend.sv|78|
core/frontend/frontend.sv|85|
core/frontend/frontend.sv|88|
core/frontend/frontend.sv|92|
core/frontend/frontend.sv|94|
core/frontend/frontend.sv|116|
core/frontend/frontend.sv|118|
core/frontend/frontend.sv|120|
core/frontend/frontend.sv|128|
core/frontend/frontend.sv|130|
core/frontend/frontend.sv|133|
core/frontend/frontend.sv|138|
core/frontend/frontend.sv|438|
core/frontend/instr_queue.sv|79|
core/frontend/instr_queue.sv|89|
core/frontend/instr_queue.sv|95|
core/frontend/instr_queue.sv|137|
core/frontend/instr_queue.sv|295|
core/frontend/instr_queue.sv|358|
core/frontend/instr_queue.sv|388|
core/frontend/instr_scan.sv|28|
core/frontend/instr_scan.sv|53|
core/id_stage.sv|52|
core/id_stage.sv|54|
core/id_stage.sv|58|
core/include/config_pkg.sv|40|
core/include/config_pkg.sv|42|
core/include/config_pkg.sv|47|
core/include/config_pkg.sv|57|
core/include/config_pkg.sv|61|
core/include/config_pkg.sv|279|
core/include/cv32a6_embedded_config_pkg.sv|75|
core/include/riscv_pkg.sv|299|
core/issue_read_operands.sv|92|
core/issue_read_operands.sv|94|
core/issue_read_operands.sv|120|
core/issue_read_operands.sv|229|
core/issue_read_operands.sv|231|
core/issue_read_operands.sv|438|
core/issue_read_operands.sv|441|
core/issue_read_operands.sv|443|
core/issue_read_operands.sv|542|
core/issue_read_operands.sv|554|
core/issue_stage.sv|86|
core/issue_stage.sv|88|
core/issue_stage.sv|97|
core/issue_stage.sv|111|
core/issue_stage.sv|115|
core/issue_stage.sv|126|
core/issue_stage.sv|140|
core/issue_stage.sv|144|
core/issue_stage.sv|186|
core/load_store_unit.sv|29|
core/load_store_unit.sv|93|
core/load_store_unit.sv|97|
core/load_store_unit.sv|104|
core/load_store_unit.sv|119|
core/load_store_unit.sv|129|
core/load_store_unit.sv|135|
core/load_store_unit.sv|139|
core/load_store_unit.sv|143|
core/load_store_unit.sv|150|
core/load_store_unit.sv|163|
core/load_store_unit.sv|198|
core/load_store_unit.sv|236|
core/load_unit.sv|75|
core/load_unit.sv|77|
core/load_unit.sv|193|
core/mmu_sv32/cva6_mmu_sv32.sv|33|
core/mmu_sv32/cva6_mmu_sv32.sv|109|
core/mmu_sv32/cva6_mmu_sv32.sv|111|
core/mmu_sv32/cva6_mmu_sv32.sv|113|
core/mmu_sv32/cva6_mmu_sv32.sv|285|
core/mmu_sv32/cva6_ptw_sv32.sv|59|
core/mmu_sv32/cva6_ptw_sv32.sv|67|
core/mmu_sv32/cva6_shared_tlb_sv32.sv|38|
core/mmu_sv32/cva6_shared_tlb_sv32.sv|42|
core/mmu_sv32/cva6_shared_tlb_sv32.sv|54|
core/mmu_sv39/mmu.sv|22|
core/mmu_sv39/mmu.sv|33|
core/mmu_sv39/mmu.sv|38|
core/mmu_sv39/mmu.sv|116|
core/mmu_sv39/mmu.sv|118|
core/mmu_sv39/mmu.sv|139|
core/mmu_sv39/mmu.sv|141|
core/mmu_sv39/ptw.sv|50|
core/mmu_sv39/ptw.sv|53|
core/mmu_sv39/ptw.sv|57|
core/mmu_sv39/ptw.sv|62|
core/mmu_sv39/tlb.sv|29|
core/mmu_sv39/tlb.sv|31|
core/mmu_sv39/tlb.sv|56|
core/mult.sv|9|
core/mult.sv|73|
core/multiplier.sv|25|
core/multiplier.sv|28|
core/multiplier.sv|33|
core/multiplier.sv|71|
core/perf_counters.sv|19|
core/perf_counters.sv|26|
core/perf_counters.sv|156|
core/scoreboard.sv|35|
core/scoreboard.sv|39|
core/scoreboard.sv|49|
core/scoreboard.sv|54|
core/scoreboard.sv|59|
core/scoreboard.sv|71|
core/store_unit.sv|201|
core/store_unit.sv|203|


always_comb begin : way_select
cl_i = '0;
for (int unsigned i = 0; i < DCACHE_SET_ASSOC; i++) if (hit_way_i[i]) cl_i = data_i[i].data;
for (int unsigned i = 0; i < CVA6Cfg.DCACHE_SET_ASSOC; i++) if (hit_way_i[i]) cl_i = data_i[i].data;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
for (int unsigned i = 0; i < CVA6Cfg.DCACHE_SET_ASSOC; i++) if (hit_way_i[i]) cl_i = data_i[i].data;
for (int unsigned i = 0; i < CVA6Cfg.DCACHE_SET_ASSOC; i++)
if (hit_way_i[i]) cl_i = data_i[i].data;

parameter type icache_arsp_t = logic,
parameter type icache_dreq_t = logic,
parameter type icache_drsp_t = logic,
parameter type icache_req_t = logic,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
parameter type icache_req_t = logic,
parameter type icache_req_t = logic,

Comment on lines 68 to 69
input cmo_req_t dcache_cmo_req_i, // from CMO FU
output cmo_rsp_t dcache_cmo_resp_o, // to CMO FU
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
input cmo_req_t dcache_cmo_req_i, // from CMO FU
output cmo_rsp_t dcache_cmo_resp_o, // to CMO FU
input cmo_req_t dcache_cmo_req_i, // from CMO FU
output cmo_rsp_t dcache_cmo_resp_o, // to CMO FU

Comment on lines +71 to +72
input dcache_req_i_t [NumPorts-1:0] dcache_req_ports_i, // from LSU
output dcache_req_o_t [NumPorts-1:0] dcache_req_ports_o, // to LSU
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
input dcache_req_i_t [NumPorts-1:0] dcache_req_ports_i, // from LSU
output dcache_req_o_t [NumPorts-1:0] dcache_req_ports_o, // to LSU
input dcache_req_i_t [NumPorts-1:0] dcache_req_ports_i, // from LSU
output dcache_req_o_t [NumPorts-1:0] dcache_req_ports_o, // to LSU

Comment on lines 74 to 75
output logic wbuffer_empty_o,
output logic wbuffer_not_ni_o,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
output logic wbuffer_empty_o,
output logic wbuffer_not_ni_o,
output logic wbuffer_empty_o,
output logic wbuffer_not_ni_o,

Comment on lines 148 to 149
ariane_pkg::ad_req_t req_fsm_miss_req;
logic [ 1:0] req_fsm_miss_size;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
ariane_pkg::ad_req_t req_fsm_miss_req;
logic [ 1:0] req_fsm_miss_size;
ariane_pkg::ad_req_t req_fsm_miss_req;
logic [ 1:0] req_fsm_miss_size;

Comment on lines 151 to 152
logic gnt_miss_fsm;
logic valid_miss_fsm;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
logic gnt_miss_fsm;
logic valid_miss_fsm;
logic gnt_miss_fsm;
logic valid_miss_fsm;

ariane_pkg::ad_req_t req_fsm_miss_req;
logic [ 1:0] req_fsm_miss_size;

logic gnt_miss_fsm;
logic valid_miss_fsm;
logic [ (DCACHE_LINE_WIDTH/64)-1:0][63:0] data_miss_fsm;
logic [ (CVA6Cfg.DCACHE_LINE_WIDTH/64)-1:0][63:0] data_miss_fsm;

// Cache Management <-> LFSR
logic lfsr_enable;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
logic lfsr_enable;
logic lfsr_enable;

Comment on lines 160 to 161
ariane_pkg::amo_t amo_op;
logic [ 63:0] amo_operand_b;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
ariane_pkg::amo_t amo_op;
logic [ 63:0] amo_operand_b;
ariane_pkg::amo_t amo_op;
logic [ 63:0] amo_operand_b;

Comment on lines 256 to +258
mshr_d.we = miss_req_we[i];
mshr_d.id = i;
mshr_d.addr = miss_req_addr[i][DCACHE_TAG_WIDTH+DCACHE_INDEX_WIDTH-1:0];
mshr_d.addr = miss_req_addr[i][CVA6Cfg.DCACHE_TAG_WIDTH+CVA6Cfg.DCACHE_INDEX_WIDTH-1:0];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
mshr_d.we = miss_req_we[i];
mshr_d.id = i;
mshr_d.addr = miss_req_addr[i][DCACHE_TAG_WIDTH+DCACHE_INDEX_WIDTH-1:0];
mshr_d.addr = miss_req_addr[i][CVA6Cfg.DCACHE_TAG_WIDTH+CVA6Cfg.DCACHE_INDEX_WIDTH-1:0];
mshr_d.we = miss_req_we[i];
mshr_d.id = i;
mshr_d.addr = miss_req_addr[i][CVA6Cfg.DCACHE_TAG_WIDTH+CVA6Cfg.DCACHE_INDEX_WIDTH-1:0];

Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

👋 Hi there!

This pull request seems inactive. Need more help or have updates? Feel free to let us know. If there are no updates within the next few days, we'll go ahead and close this PR. 😊

@github-actions github-actions bot added the Status:Stale Issue or PR is stale and hasn't received any updates. label Jan 14, 2024
@JeanRochCoulon JeanRochCoulon removed the Status:Stale Issue or PR is stale and hasn't received any updates. label Jan 14, 2024
@cathales
Copy link
Contributor Author

Status of my version of the branch: smoke tests pass, ASIC synthesis passes too. However, I encounter Xilinx related issues, which I will have to fix.

Copy link
Contributor

👋 Hi there!

This pull request seems inactive. Need more help or have updates? Feel free to let us know. If there are no updates within the next few days, we'll go ahead and close this PR. 😊

@github-actions github-actions bot added the Status:Stale Issue or PR is stale and hasn't received any updates. label Feb 15, 2024
@JeanRochCoulon JeanRochCoulon removed the Status:Stale Issue or PR is stale and hasn't received any updates. label Feb 18, 2024
@cathales cathales mentioned this pull request Mar 6, 2024
@cathales cathales closed this Mar 7, 2024
@cathales cathales deleted the user-config branch March 7, 2024 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants